package DynamicProxy;

import DynamicProxy.entity.Modem;
import DynamicProxy.entity.Switch;
import DynamicProxy.interfaceDemo.Internet;
import DynamicProxy.interfaceDemo.Intranet;
import DynamicProxy.proxyDemo.KeywordFilter;

import java.lang.reflect.Proxy;

/**
 * create by mwh 2021-11-12
 **/

public class ClientProxy {
    public static void main(String[] args) {

        //访问外网（互联网）,生成猫代理。
        Internet internet = (Internet) Proxy.newProxyInstance(
                Modem.class.getClassLoader(),
                Modem.class.getInterfaces(),
                new KeywordFilter(new Modem()));
        internet.access("http://www.电影.com");
        internet.access("http://www.游戏.com");
        internet.access("http://www.学习.com");
        internet.access("http://www.工作.com");

        //访问内网（局域网），生成交换机代理。  这个类可以不用看
        Intranet intranet = (Intranet) Proxy.newProxyInstance(
                Switch.class.getClassLoader(),
                Switch.class.getInterfaces(),
                new KeywordFilter(new Switch()));
        intranet.fileAccess("IronHuman.mp4");
        intranet.fileAccess("Hero.exe");
        intranet.fileAccess("Java学习资料.zip");
        intranet.fileAccess("设计模式是什么鬼.doc");

        /*
            开启关键字过滤模式...
            禁止访问：http://www.电影.com
            禁止访问：http://www.游戏.com
            正在访问：http://www.学习.com
            正在访问：http://www.工作.com
            开启关键字过滤模式...
            禁止访问：\192.68.1.2共享电影IronHuman.mp4
            禁止访问：\192.68.1.2共享游戏Hero.exe
            访问内网：\192.68.1.4sharedJava学习资料.zip
            访问内网：\192.68.1.6Java知音设计模式是什么鬼.doc

        */
    }
}